package controllers;

import play.mvc.Controller;

public class CoordinadorCtrl extends Controller {

	// private static SessionObj getSessionObj() {
	// return Json.fromJson(Json.parse(session(UserCtrl.SESSION_OBJ)),
	// SessionObj.class);
	// }
	//
	// private static long getIdCalendarioAcademicoActual() {
	// return ColegioSrv.getColegio(
	// getSessionObj().getCoordinador().getIdColegio())
	// .getIdCalendarioAcademicoActual();
	// }
	//
	// @Transactional
	// @NamedAction("goNext")
	// public static Result goNext() throws InstantiationException,
	// IllegalAccessException {
	// Colegio c = ColegioSrv.getColegio(Long.parseLong(session("idColegio")));
	// List<String> s = ColegioProcessSrv.goNext(c);
	// return ok(Json.toJson(s));
	// }
	//
	// @Transactional
	// @NamedAction("read")
	// public static Result getEstudiantes(String query) {
	// List<Estudiante> res = ColegioSrv.getEstudiantes(getSessionObj()
	// .getCoordinador().getIdColegio(), query);
	// return ok(Json.toJson(res));
	// }
	//
	// @Transactional
	// @NamedAction("newEstudiante")
	// public static Result newEstudiante() {
	// Estudiante e = Json.fromJson(request().body().asJson(),
	// Estudiante.class);
	//
	// Acudiente a = e.getAcudiente();
	// if (a.getPersona().getId() != null) {
	// DAO.merge(a.getPersona());
	// a = DAO.execute(
	// "SELECT a from Acudiente a WHERE a.persona.id = :idPersona",
	// 1, "idPersona", a.getPersona().getId());
	// } else {
	// ColegioSrv.crearActorConUsuario(a);
	// }
	// e.setIdAcudiente(a.getId());
	// e.setIdColegio(getSessionObj().getCoordinador().getIdColegio());
	// DAO.persist(e);
	// DAO.flush();
	//
	// e.setAcudiente(a);
	// // UserCreator.createUser(e);
	// return ok(Json.toJson(e));
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getGrados() {
	//
	// return ok(Json.toJson(ColegioSrv.getGradosColegio(getSessionObj()
	// .getCoordinador().getIdColegio())));
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getCursosGrado(Long idGrado) {
	// List<Curso> cursos = ColegioSrv.getCursosGrado(
	// getIdCalendarioAcademicoActual(), idGrado);
	// return ok(Json.toJson(cursos));
	// }
	//
	// @Transactional
	// @NamedAction("newCurso")
	// public static Result newCurso() {
	//
	// Curso c = Json.fromJson(request().body().asJson(), Curso.class);
	// c.setIdCalendarioAcademico(getIdCalendarioAcademicoActual());
	//
	// ColegioSrv.newCurso(c);
	//
	// return ok(Json.toJson(c));
	// }
	//
	// @Transactional
	// @NamedAction("deleteCurso")
	// public static Result deleteCurso(Long idCurso) {
	//
	// try {
	// Curso c = DAO.find(Curso.class, idCurso);
	// if (c.getIdCalendarioAcademico() == getIdCalendarioAcademicoActual()) {
	// DAO.remove(c);
	// DAO.flush();
	// return ok();
	// }
	//
	// return
	// unauthorized("El curso no se puede borrar. Probablemente tiene estudiantes inscritos");
	// } catch (Exception e) {
	// return
	// unauthorized("El curso no se puede borrar. Probablemente tiene estudiantes inscritos");
	// }
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getCurso(Long idCurso) {
	// return ok(Json.toJson(DAO.find(Curso.class, idCurso)));
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getMateriasCurso(Long idCurso) {
	//
	// return ok(Json.toJson(ColegioSrv.getMateriasCurso(idCurso)));
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getProfesores() {
	// return ok(Json.toJson(DAO.query(Profesor.class, -1, "idColegio",
	// getSessionObj().getCoordinador().getIdColegio())));
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getSecretarios() {
	// return ok(Json.toJson(DAO.query(Secretario.class, -1, "idColegio",
	// getSessionObj().getCoordinador().getIdColegio())));
	// }
	//
	// @Transactional
	// @NamedAction("newProfesor")
	// public static Result newProfesor() {
	// Profesor c = Json.fromJson(request().body().asJson(), Profesor.class);
	// c.setIdColegio(getSessionObj().getCoordinador().getIdColegio());
	// ColegioSrv.crearActorConUsuario(c);
	// return ok(Json.toJson(c));
	// }
	//
	// @Transactional
	// @NamedAction("newSecretario")
	// public static Result newSecretario() {
	// Secretario c = Json.fromJson(request().body().asJson(),
	// Secretario.class);
	// c.setIdColegio(getSessionObj().getCoordinador().getIdColegio());
	// ColegioSrv.crearActorConUsuario(c);
	// return ok(Json.toJson(c));
	// }
	//
	// @Transactional
	// @NamedAction("newOrientador")
	// public static Result newOrientador() {
	// Orientador c = Json.fromJson(request().body().asJson(),
	// Orientador.class);
	// c.setIdColegio(getSessionObj().getCoordinador().getIdColegio());
	// ColegioSrv.crearActorConUsuario(c);
	// return ok(Json.toJson(c));
	// }
	//
	// @Transactional
	// @NamedAction("updateMateriaCurso")
	// public static Result updateMateriaCurso() {
	//
	// MateriaCurso mc = Json.fromJson(request().body().asJson(),
	// MateriaCurso.class);
	// DAO.merge(mc);
	// return ok();
	// }
	//
	// @Transactional
	// @NamedAction("updateCurso")
	// public static Result updateCurso(Long idCurso) {
	// Curso nc = Json.fromJson(request().body().asJson(), Curso.class);
	// DAO.merge(nc);
	// return ok();
	// }
	//
	// @Transactional
	// @NamedAction("newMatricula")
	// public static Result newMatricula() {
	// Matricula m = Json.fromJson(request().body().asJson(), Matricula.class);
	//
	// m.setIdCalendarioAcademico(getIdCalendarioAcademicoActual());
	// DAO.merge(m);
	// return ok(Json.toJson(m));
	// }
	//
	// @Transactional
	// @NamedAction("updateEstudiante")
	// public static Result updateEstudiante(Long idEstudiante) {
	// Estudiante e = Json.fromJson(request().body().asJson(),
	// Estudiante.class);
	// e.setId(idEstudiante);
	// DAO.merge(e);
	// if (e.getAcudiente() != null)
	// DAO.merge(e.getAcudiente());
	// return ok();
	// }
	//
	// @Transactional
	// @NamedAction("updatePersona")
	// public static Result updatePersona(Long idPersona) {
	// Persona p = Json.fromJson(request().body().asJson(), Persona.class);
	// p.setId(idPersona);
	// DAO.merge(p);
	// return ok();
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getMaterias() {
	// // FIXME agregar el metodo materias grado
	// return ok(Json.toJson(ColegioSrv.getMateriasColegio(getSessionObj()
	// .getCoordinador().getIdColegio())));
	// }
	//
	// @Transactional(readOnly = true)
	// @NamedAction("read")
	// public static Result getCalendarioAcademicoActual() {
	// Colegio c = ColegioSrv.getColegio(getSessionObj().getCoordinador()
	// .getIdColegio());
	// CalendarioAcademico p = DAO.find(CalendarioAcademico.class,
	// c.getIdCalendarioAcademicoActual());
	// return ok(Json.toJson(p));
	// }
	//
	// @Transactional
	// @NamedAction("updateCalendarioAcademico")
	// public static Result updateCalendarioAcademico(Long
	// idCalendarioAcademico) {
	//
	// CalendarioAcademico p = Json.fromJson(request().body().asJson(),
	// CalendarioAcademico.class);
	// p.setIdColegio(getSessionObj().getCoordinador().getIdColegio());
	// int i = 1;
	// for (Periodo c : p.getPeriodos()) {
	// c.setCalendarioAcademico(p);
	// c.setNumero(i++);
	// }
	//
	// DAO.merge(p);
	// return ok();
	// }
	//
	// @Transactional(readOnly = true)
	// public static Result getBoletin(Long idEstudiante) throws JRException {
	//
	// Long idPeriodo = ColegioSrv.getColegio(
	// getSessionObj().getCoordinador().getIdColegio())
	// .getIdPeriodoActual();
	// List<IndicadorBoletin> s = ColegioSrvScala.getBoletin(idEstudiante,
	// idPeriodo);
	//
	// Object[] obs = DAO.executeNative(Queries.getDatosBoletin(), 1,
	// "idColegio", getSessionObj().getCoordinador().getIdColegio(),
	// "idEstudiante", idEstudiante);
	//
	// HashMap<String, Object> datos = new HashMap<String, Object>();
	// datos.put("NOMBRE_COLEGIO", obs[0].toString());
	// datos.put("CODIGO_ESTUDIANTE", obs[1].toString());
	// datos.put("NOMBRE_ESTUDIANTE", obs[2].toString());
	// datos.put("PERIODO", obs[3].toString());
	// datos.put("CURSO", obs[4].toString());
	// datos.put("GRADO", obs[5].toString());
	// datos.put("JORNADA_COLEGIO", obs[6].toString());
	// datos.put("CALENDARIO_ESCOLAR", obs[7].toString());
	//
	// byte[] xy = Report.generate("private/jasperTemplates/Boletin1.jasper",
	// "Boletin.pdf", datos, s, response());
	// return ok(xy);
	// }
	//
	// @Transactional
	// public static Result getEstudiantesCurso(Long idCurso) {
	// System.out.println("Obteniendo el listado de estudiantes");
	// List<Estudiante> estudiantes = DAO
	// .execute(
	// "SELECT e FROM Estudiante e, Matricula m WHERE e.id = m.idEstudiante AND m.idCurso = :idCurso AND m.idCalendarioAcademico = :idCalendarioAcademico",
	// -1, "idCurso", idCurso, "idCalendarioAcademico",
	// getIdCalendarioAcademicoActual());
	// System.out.println(estudiantes);
	// return ok(Json.toJson(estudiantes));
	// }
}
